// ======================================================
//     Copyright (c) 2009 METARACE  All rights reserved.
//    
//     The use and distribution terms for this software are contained in the file
//     named license.txt, which can be found in the root of this distribution.
//     By using this software in any fashion, you are agreeing to be bound by the
//     terms of this license.
//    
//     You must not remove this notice, or any other, from this software.
// ======================================================
using Metarace.Logging;

namespace Toulr.Util.Logging
{

    #region

    #endregion

    /// <summary>
    /// Provides an interface that supports <see cref="ILogger"/> and
    /// allows the storage and retrieval of Contexts. These are supported in
    /// both log4net and NLog.
    /// </summary>
    public interface IExtendedLogger : ILogger
    {
        /// <summary>
        /// Exposes the Global Context of the extended logger. 
        /// </summary>
        IContextProperties GlobalProperties { get; }

        /// <summary>
        /// Exposes the Thread Context of the extended logger.
        /// </summary>
        IContextProperties ThreadProperties { get; }

        /// <summary>
        /// Exposes the Thread Stack of the extended logger.
        /// </summary>
        IContextStacks ThreadStacks { get; }
    }
}